using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Threading;

namespace ClienteA
{
    class ClienteA
    {
        static NetworkStream canal;
        static void Main(string[] args)
        {
            TcpClient cliente = new TcpClient();
            cliente.Connect("127.0.0.1", 9090);
            canal = cliente.GetStream();

            Thread recibidor = new Thread(Recibir);
            Thread enviador = new Thread(Enviar);
            recibidor.Start();
            enviador.Start();
        }

        static void Recibir() {
            while (true) { 
                byte[] datos = new byte[100];
                canal.Read(datos, 0, datos.Length);
                string msj = Encoding.ASCII.GetString(datos);
                Console.WriteLine("- {0}", msj);
            }
        }

        static void Enviar()
        {
            while (true) {
                byte[] datos = new byte[100];
                Console.Write("> ");
                string msj = Console.ReadLine();
                datos = Encoding.ASCII.GetBytes(msj);
                canal.Write(datos, 0, datos.Length);
                canal.Flush();
            }
        }
    }
}
